|
In computer science, a function type (also arrow type or exponential) is the type of a variable or parameter to which a function has or can be assigned, or an argument or result type of a higher-order function taking or returning a function. A function type depends on the type of the parameters and the result type of the function (it, or more accurately the unapplied type constructor · → ·, is a higher-kinded type). In theoretical settings and languages where functions are defined in curried form, such as the simply typed lambda calculus, a function type depends on exactly two types, the domain ''A'' and the range ''B''. Here a function type is often denoted ''A'' → ''B'', following mathematical convention, or ''B''''A'', based on the fact that there exist exactly ''B''''A'' (exponentially many) set-theoretic functions mapping ''A'' to ''B''. The function type can be considered to be a special case of the dependent product type. Among other properties, the dependent product type encompasses the idea of a polymorphic function. == Programming languages == The following table summarized the syntax used for function types in several programming languages, including an example type signature for the higher-order function composition function: When looking at the example type signature of for example C#, one should note that the type of the function compose is actually Func .Note that because of type erased nature of C++11's std::function , it is more common to use templates for higher order function parameters and type inference (auto ) for closures.抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Function type」の詳細全文を読む スポンサード リンク
|